<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui">

    <ui:composition template="/plantillas/plantillaPrincipal.xhtml">
        <ui:define name="contenido">
            <f:view>
                <h:form id="formulario">

                    <p:panel header="Registrar Factura" style="width:100%;margin: 10px auto;">

                        <p:panelGrid style="width:100%;margin: 10px auto;" id="panelFactura">
                            <p:row>

                                <p:column colspan="1" style="width:160px">
                                    <h:outputLabel id="lblNroOrdenCS" value="ORDEN DE COMPRA(*): " styleClass="lblForm" />
                                </p:column>
                                <p:column >
                                    <p:selectOneMenu id="cbxCS" value="#{BKCompraFacturacion.facturaFormulario.idOrdenCompraServicio.id}" 
                                                     style="width: 140px" filter="#{BKCompraFacturacion.listaOrdenesCSFormulario.size() gt 10}" 
                                                     filterMatchMode="contains"> 
                                        <f:selectItem itemLabel="Seleccionar" itemValue="0" /> 
                                        <f:selectItems value="#{BKCompraFacturacion.listaOrdenesCSFormulario}" var="ordenCS" 
                                                       itemLabel="#{ordenCS.codigo}" itemValue="#{ordenCS.id}" />
                                        <p:ajax listener="#{MBCompraFacturaImportacion.obtenerListaGuias}"
                                                update="txtProveedor,txtMoneda,fdsNegociacion,btnGuardar,dataTablaDetalleOrden,slctGuias" />
                                    </p:selectOneMenu>
                                    <p:message for="cbxCS" display="text" />
                                </p:column>
                                <p:column colspan="2">
                                </p:column>
                                <p:column>
                                    <h:outputLabel id="lblNumFactura" value="NRO FACTURA(*): " styleClass="lblForm" />
                                </p:column>
                                <p:column >
                                    <p:inputText id="txtNumFactura" required="true" style="width: 100%"
                                                 value="#{BKCompraFacturacion.facturaFormulario.numeroFactura}" maxlength="20" >

                                    </p:inputText>  
                                    <p:message for="txtNumFactura" display="text" />
                                </p:column>

                            </p:row>
                            <p:row>
                                <p:column>
                                    <h:outputLabel id="lblProveedor" value="PROVEEDOR(*): " styleClass="lblForm" />
                                </p:column>
                                <p:column colspan="3">
                                    <h:outputText id="txtProveedor" value="#{BKCompraFacturacion.facturaFormulario.idProveedor.razonSocial}" />
                                </p:column>
                                <p:column>
                                    <h:outputLabel id="lblMoneda" value="MONEDA(*): " styleClass="lblForm" />
                                </p:column>
                                <p:column>
                                    <p:inputText id="txtMoneda"  onkeyup="cambiarMayuscula(this)" readonly="true" style="width: 100%"
                                                 value="#{BKCompraFacturacion.facturaFormulario.idTipoMoneda.nombre}" />
                                </p:column>
                            </p:row>

                            <p:row>

                                <p:column>
                                    <h:outputLabel id="lblFechaEmision" value="FECHA EMISION(*): " styleClass="lblForm" />
                                </p:column>
                                <p:column>
                                    <p:calendar id="calendarFechaEmision" value="#{BKCompraFacturacion.facturaFormulario.fecEmision}" 
                                                pattern="dd/MM/yyyy" showOn="button" showButtonPanel="true" navigator="true" 
                                                disabled="#{BKCompraFacturacion.listaDetalleFactura.size() gt 0}"
                                                required="true" size="12" locale="es">
                                        <p:ajax event="dateSelect" listener="#{MBCompraFacturaImportacion.marcarFecha}" update="txtCambio,calendarFechaEmision,llenarDetalle" />
                                    </p:calendar>
                                    <p:message for="calendarFechaEmision"/>
                                </p:column>
                                <p:column colspan="2">
                                </p:column>
                                <p:column>
                                    <h:outputLabel id="lblCambio" value="TIPO CAMBIO(*): " styleClass="lblForm" />
                                </p:column>
                                <p:column >
                                    <h:outputText id="txtCambio" value="#{BKCompraFacturacion.facturaFormulario.tipoCambio}" />
                                </p:column>

                            </p:row>

                            <p:row>
                                <p:column colspan="6">
                                    <p:fieldset toggleable="true" legend="Condiciones de Pago" style="width:98%;margin: 10px auto;" id="fdsNegociacion">
                                        <p:panelGrid style="width:100%;margin: 10px auto;">
                                            <p:row>
                                                <p:column>
                                                    <h:outputLabel id="lblFormaPago" value="FORMA DE PAGO(*): " styleClass="lblForm" />
                                                </p:column>
                                                <p:column>
                                                    <p:selectOneMenu id="cbxFormaPago" required="true" 
                                                                     value="#{BKCompraFacturacion.facturaFormulario.formaPago.nombre}"> 
                                                        <f:selectItem itemLabel="Seleccionar" itemValue="" /> 
                                                        <f:selectItems value="#{BKCompraFacturacion.listaFormaPago}" var="forma" 
                                                                       itemLabel="#{forma.nombre}" itemValue="#{forma.nombre}"/>	
                                                        <p:ajax update="cbxTipoPago,txtDiasPago" process="@this" listener="#{MBCompraFacturaImportacion.elegirFormaPago}" />
                                                    </p:selectOneMenu>
                                                    <p:message for="cbxFormaPago" display="text"/>	
                                                </p:column>
                                                <p:column>
                                                    <h:outputLabel id="lblTipoPago" value="TIPO DE PAGO(*): " styleClass="lblForm" />
                                                </p:column>
                                                <p:column>
                                                    <p:selectOneMenu id="cbxTipoPago" required="true" 
                                                                     value="#{BKCompraFacturacion.facturaFormulario.tipoPago}"> 
                                                        <f:selectItem itemLabel="Seleccionar" itemValue="" /> 
                                                        <f:selectItems value="#{BKCompraFacturacion.listaTipoPago}" var="tipo" 
                                                                       itemLabel="#{tipo}" itemValue="#{tipo}"/>
                                                    </p:selectOneMenu>
                                                    <p:message for="cbxTipoPago" display="text"/>	
                                                </p:column>
                                                <p:column>
                                                    <h:outputLabel id="lblDiasPago" value="DIAS PARA PAGAR: " styleClass="lblForm" />
                                                </p:column>
                                                <p:column>
                                                    <p:inputText id="txtDiasPago" maxlength="3" 
                                                                 disabled="#{BKCompraFacturacion.facturaFormulario.formaPago.nombre ne 'CREDITO'}"
                                                                 value="#{BKCompraFacturacion.facturaFormulario.diasPago}"/>
                                                    <p:message for="txtDiasPago" display="text"/>
                                                </p:column>

                                            </p:row>

                                        </p:panelGrid>
                                    </p:fieldset>
                                </p:column>
                            </p:row>

                            <p:row>
                                <p:column>
                                    <h:outputLabel value="PUERTO DE ORIGEN " styleClass="lblForm"  />
                                </p:column>
                                <p:column>
                                    <p:inputText id="txtPortOrigen"  onkeyup="cambiarMayuscula(this)" 
                                                 value="#{BKCompraFacturacion.facturaFormulario.puertoOrigen}" />
                                </p:column>

                                <p:column>
                                    <h:outputLabel value="EMBARCADO EN "  styleClass="lblForm" />
                                </p:column>
                                <p:column>
                                    <p:inputText id="txtEmbarcado"  onkeyup="cambiarMayuscula(this)" 
                                                 value="#{BKCompraFacturacion.facturaFormulario.embarcado}" />
                                </p:column>

                                <p:column>
                                    <h:outputLabel value="FECHA EMBARQUE "  styleClass="lblForm" />
                                </p:column>
                                <p:column>
                                    <p:calendar id="calendarFechaEmbarque" 
                                                value="#{BKCompraFacturacion.facturaFormulario.fechEmbarque}"
                                                pattern="dd/MM/yyyy" size="13"
                                                showButtonPanel="true" navigator="true" showOn="button"
                                                maxdate="#{BKCompraFacturacion.facturaFormulario.fechLlegada}"
                                                locale="es"  >
                                        <p:ajax event="dateSelect" process="@this" update="calendarFechaLlegada" />
                                    </p:calendar>
                                </p:column>
                            </p:row>

                            <p:row>
                                <p:column>
                                    <h:outputLabel 
                                        value="PUERTO DE DESTINO: " styleClass="lblForm"  />
                                </p:column>
                                <p:column>
                                    <p:inputText id="txtPortDestino"  onkeyup="cambiarMayuscula(this)" 
                                                 value="#{BKCompraFacturacion.facturaFormulario.puertoDestino}" />
                                </p:column>

                                <p:column colspan="2" />
                                <p:column>
                                    <h:outputLabel value="FECHA LLEGADA "  styleClass="lblForm" />
                                </p:column>
                                <p:column>
                                    <p:calendar id="calendarFechaLlegada" 
                                                value="#{BKCompraFacturacion.facturaFormulario.fechLlegada}"
                                                pattern="dd/MM/yyyy" size="13"
                                                showButtonPanel="true" navigator="true" showOn="button"
                                                mindate="#{BKCompraFacturacion.facturaFormulario.fechEmbarque}"
                                                locale="es"  >
                                        <p:ajax event="dateSelect" process="@this" update="calendarFechaEmbarque" />
                                    </p:calendar>
                                </p:column>

                            </p:row>

                            <p:row>
                                <p:column>
                                    <h:outputText value="ELEGIR GUIAS: " styleClass="lblForm" />  
                                </p:column>
                                <p:column>
                                    <p:selectManyCheckbox  id="slctGuias" value="#{BKCompraFacturacion.listaGuiaSeleccionadas}" layout="pageDirection">  
                                        <f:selectItems value="#{BKCompraFacturacion.listaGuiaRemisionElegir}" var="g"
                                                       itemLabel="#{g.serie}-#{g.numeroGuia}" itemValue="#{g.id}"/>  
                                        <p:ajax event="change" process="@this" update="txtMoneda,llenarDetalle,dataTablaDetalleOrden,btnGuardar"  
                                                listener="#{MBCompraFacturaImportacion.cambiarGuia}"/>
                                    </p:selectManyCheckbox >  
                                </p:column>
                                <p:column  >
                                    <p:commandButton id="llenarDetalle" value="BUSCAR DETALLES" update="detalleFactura,btnGuardar,calendarFechaEmision,txtMoneda" 
                                                     disabled="#{BKCompraFacturacion.listaGuiaSeleccionadas.size() eq 0}" style="font-size: 10px"
                                                     actionListener="#{MBCompraFacturaImportacion.llenarDetalle}" process="@this" />  
                                </p:column>
                                
                                <p:column></p:column>
                                <p:column>
                                    <h:outputLabel value="Nº BULTOS " styleClass="lblForm" />
                                </p:column>
                                <p:column >
                                    <p:inputText id="txtBultos"  onkeyup="cambiarMayuscula(this)" 
                                                 value="#{BKCompraFacturacion.facturaFormulario.numBultos}" />
                                </p:column>
                            </p:row>
                            <p:row>
                                
                            </p:row>

                            <p:row>
                                <p:column colspan="6">
                                    <p:fieldset legend="DETALLE DE FACTURA" toggleable="true" id="detalleFactura">
                                        <p:panelGrid  style="width:100%">
                                            <p:row>
                                                <p:column colspan="4">
                                                    <p:dataTable id="dataTablaDetalleOrden" var="detalle" widgetVar="carsTable"
                                                                 value="#{BKCompraFacturacion.listaDetalleFactura}" style="width: 100%"
                                                                 emptyMessage="No se encontro detalle de la factura" filteredValue="" rowIndexVar="rowIndex"> 

                                                        <p:column id="idColumnaNum"	headerText="Num." style="width: 5%"> 
                                                            <h:outputText value="#{rowIndex+1}" /> 
                                                        </p:column>

                                                        <p:column id="idDescripcion"
                                                                  headerText="Descripcion"  
                                                                  filterMatchMode="contains"> 
                                                            <h:outputText value="#{detalle.idArticulo.nombreComercial}" /> 
                                                        </p:column>

                                                        <p:column id="idUnidadMedida" rendered="false"
                                                                  headerText="UM"  
                                                                  filterMatchMode="contains"> 
                                                            <h:outputText value="kg" /> 
                                                        </p:column>

                                                        <p:column id="idCantidad"
                                                                  headerText="Cant."  
                                                                  filterMatchMode="contains"> 
                                                            <h:outputText value="#{detalle.cantidad}" style="float: right" > 
                                                                <f:convertNumber minFractionDigits="2" maxFractionDigits="2" />
                                                            </h:outputText >   
                                                        </p:column>

                                                        <p:column id="idPrecio"
                                                                  headerText="Precio"  
                                                                  filterMatchMode="contains"> 
                                                            <h:outputText value="#{detalle.precioUnitario}" style="float: right" > 
                                                                <f:convertNumber minFractionDigits="2" maxFractionDigits="2" />
                                                            </h:outputText >   
                                                        </p:column>

                                                        <p:column id="idSubTotal" 
                                                                  headerText="Sub Total"  
                                                                  filterMatchMode="contains"> 
                                                            <h:outputText value="#{detalle.precioTotal}" style="float: right" >
                                                                <f:convertNumber minFractionDigits="2" maxFractionDigits="2" />
                                                            </h:outputText>
                                                        </p:column>

                                                    </p:dataTable>
                                                </p:column>
                                            </p:row>


                                            <p:row rendered="false">
                                                <p:column colspan="3">
                                                    <h:outputLabel id="lblValorVenta" value="SUBTOTAL" class="lblForm" />
                                                </p:column>
                                                <p:column > 
                                                    <h:outputText id="txtValorVenta" 
                                                                  value="#{BKCompraFacturacion.facturaFormulario.subTotal}">
                                                        <f:convertNumber minFractionDigits="2" maxFractionDigits="2" groupingUsed="false" />
                                                    </h:outputText>
                                                </p:column>

                                            </p:row>

                                            <p:row rendered="false">
                                                <p:column colspan="3">
                                                    <h:outputLabel id="lblIGV" value="IGV (18%)" class="lblForm" />
                                                </p:column>
                                                <p:column>
                                                    <h:outputText id="txtIGV" value="#{BKCompraFacturacion.facturaFormulario.igv}" >
                                                        <f:convertNumber minFractionDigits="2" maxFractionDigits="2" />
                                                    </h:outputText>
                                                </p:column>
                                            </p:row>
                                            <p:row>
                                                <p:column colspan="3" style="text-align: right">
                                                    <h:outputLabel id="lblTotalGral" value="PRECIO FOB" class="lblForm" />
                                                </p:column>
                                                <p:column style="width: 160px">
                                                    <p:inputText id="txtTotalGral" value="#{BKCompraFacturacion.facturaFormulario.total}" 
                                                                 readonly="true" style="text-align: right" >
                                                        <f:convertNumber minFractionDigits="2" maxFractionDigits="2" />
                                                    </p:inputText>
                                                </p:column>
                                            </p:row>
                                            <p:row>
                                                <p:column colspan="3" style="text-align: right">
                                                    <h:outputLabel id="lblCFR" value="FLETE " styleClass="lblForm"  />
                                                </p:column>
                                                <p:column >
                                                    <p:inputText id="txtCFR" style="text-align: right"
                                                                 value="#{BKCompraFacturacion.facturaFormulario.valorCFR}" >
                                                        <f:convertNumber minFractionDigits="2" maxFractionDigits="2"  />
                                                        <p:ajax listener="#{MBCompraFacturaImportacion.calcularTotales}" event="blur" process="@this"
                                                                update="txtTotalImport"/>
                                                    </p:inputText>
                                                </p:column>
                                            </p:row>
                                            <p:row>
                                                <p:column colspan="3" style="text-align: right">
                                                    <h:outputLabel id="lblCIF" value="SEGURO " styleClass="lblForm"  />
                                                </p:column>
                                                <p:column >
                                                    <p:inputText id="txtCIF" style="text-align: right"
                                                                 value="#{BKCompraFacturacion.facturaFormulario.valorCIF}" >
                                                        <f:convertNumber minFractionDigits="2" maxFractionDigits="2"  />
                                                        <p:ajax listener="#{MBCompraFacturaImportacion.calcularTotales}" event="blur" process="@this"
                                                                update="txtTotalImport"/>
                                                    </p:inputText>
                                                </p:column>
                                            </p:row>
                                            <p:row>
                                                <p:column colspan="3" style="text-align: right">
                                                    <h:outputLabel id="lblTotalImport" value="TOTAL " styleClass="lblForm"  />
                                                </p:column>
                                                <p:column >
                                                    <p:inputText id="txtTotalImport" style="text-align: right" readonly="true"
                                                                 value="#{BKCompraFacturacion.facturaFormulario.totalImportacion}" >
                                                        <f:convertNumber minFractionDigits="2" maxFractionDigits="2"  />
                                                    </p:inputText>
                                                </p:column>
                                            </p:row>

                                        </p:panelGrid>


                                    </p:fieldset>
                                </p:column>
                            </p:row>

                        </p:panelGrid>


                        <p:panelGrid style="width:40%;margin: 10px auto;">

                            <p:row>
                                <p:column>
                                    <p:commandButton  action="#{BKCompraFacturacion.comando.aceptar()}" ajax="false" 
                                                      value="#{BKCompraFacturacion.comando.nombre}" id="btnGuardar"
                                                      disabled="#{BKCompraFacturacion.listaDetalleFactura.size() eq 0}"/>
                                </p:column>
                                <p:column>
                                    <p:commandButton action="#{MBCompraFacturaImportacion.cancelar()}" ajax="false" immediate="true" value="Cancelar"/>
                                </p:column>
                            </p:row>	

                        </p:panelGrid>

                        <h:panelGrid styleClass="mensaje_obligatorio">(*) Campos Requeridos</h:panelGrid>

                    </p:panel>

                </h:form>


            </f:view>
        </ui:define>

    </ui:composition>
</html>